package com.ly.heart.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-采购申请单对象 erp_king_purchase_apply_info
 *
 * @author cxl
 * @date 2024-08-31
 */
@TableName ("erp_king_purchase_apply_info")
@ApiModel (value = "金蝶-采购申请单", description = "金蝶-采购申请单")
@Data
@Accessors(chain = true)
public class KingPurchaseApplyEntity {

    /** 主键id */
    @TableId (type = IdType.INPUT)
    private String id;

    /** 单据编号 */
    @ApiModelProperty ("单据编号")
    @TableField ("doc_code")
    @Excel (name = "单据编号")
    private String docCode;

    /** 单据类型 */
    @ApiModelProperty ("单据类型")
    @TableField ("doc_type")
    @Excel (name = "单据类型")
    private String docType;

    /** 申请组织 */
    @ApiModelProperty ("申请组织")
    @TableField ("apply_org")
    @Excel (name = "申请组织")
    private String applyOrg;

    /** 申请组织编码 */
    @ApiModelProperty ("申请组织编码")
    @TableField ("apply_org_code")
    @Excel (name = "申请组织编码")
    private String applyOrgCode;

    /** 申请部门 */
    @ApiModelProperty ("申请部门")
    @TableField ("apply_dept")
    @Excel (name = "申请部门")
    private String applyDept;

    /** 申请部门编码 */
    @ApiModelProperty ("申请部门编码")
    @TableField ("apply_dept_code")
    @Excel (name = "申请部门编码")
    private String applyDeptCode;

    /** 含税金额合计 */
    @ApiModelProperty ("含税金额合计")
    @TableField ("including_tax_amount")
    @Excel (name = "含税金额合计")
    private String includingTaxAmount;

    /** 申请日期 */
    @ApiModelProperty ("申请日期")
    @TableField ("apply_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyTime;

    /** 申请人 */
    @ApiModelProperty ("申请人")
    @TableField ("apply_id")
    @Excel (name = "申请人")
    private String applyId;

    /** 申请人编码 */
    @ApiModelProperty ("申请人编码")
    @TableField ("apply_code")
    @Excel (name = "申请人编码")
    private String applyCode;

    /** 申请类型 */
    @ApiModelProperty ("申请类型")
    @TableField ("aplly_type")
    @Excel (name = "申请类型")
    private String apllyType;

    /** 币别id */
    @ApiModelProperty ("币别id")
    @TableField ("currency_id")
    @Excel (name = "币别id")
    private String currencyId;

    /** 币别code */
    @ApiModelProperty ("币别code")
    @TableField ("currency_code")
    @Excel (name = "币别code")
    private String currencyCode;

    /** 价外税 */
    @ApiModelProperty ("价外税")
    @TableField ("is_extra_price_tax")
    @Excel (name = "价外税")
    private String isExtraPriceTax;

    /** 验收方式(数量验收;金额验收;比例验收) */
    @ApiModelProperty ("验收方式(数量验收;金额验收;比例验收)")
    @TableField ("check_method")
    @Excel (name = "验收方式(数量验收;金额验收;比例验收)")
    private String checkMethod;

    /** 创建人 */
    @ApiModelProperty ("创建人")
    @TableField ("create_name")
    @Excel (name = "创建人")
    private String createName;

    /** 最后修改人 */
    @ApiModelProperty ("最后修改人")
    @TableField ("last_update_name")
    @Excel (name = "最后修改人")
    private String lastUpdateName;

    /** 最后修改日期 */
    @ApiModelProperty ("最后修改日期")
    @TableField ("last_update_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "最后修改日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUpdateTime;

    /** 审核人 */
    @ApiModelProperty ("审核人")
    @TableField ("examine_name")
    @Excel (name = "审核人")
    private String examineName;

    /** 审核日期 */
    @ApiModelProperty ("审核日期")
    @TableField ("examine_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date examineTime;

    /** 作废状态 */
    @ApiModelProperty ("作废状态")
    @TableField ("invalid_state")
    @Excel (name = "作废状态")
    private String invalidState;

    /** 作废人 */
    @ApiModelProperty ("作废人")
    @TableField ("invalid_name")
    @Excel (name = "作废人")
    private String invalidName;

    /** 作废日期 */
    @ApiModelProperty ("作废日期")
    @TableField ("invalid_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "作废日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invalidTime;

    /** 确认状态 */
    @ApiModelProperty ("确认状态")
    @TableField ("confirm_state")
    @Excel (name = "确认状态")
    private String confirmState;

    /** 确认人 */
    @ApiModelProperty ("确认人")
    @TableField ("confirm_name")
    @Excel (name = "确认人")
    private String confirmName;

    /** 确认日期 */
    @ApiModelProperty ("确认日期")
    @TableField ("confirm_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "确认日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date confirmTime;

    /** 关闭状态 */
    @ApiModelProperty ("关闭状态")
    @TableField ("close_status")
    @Excel (name = "关闭状态")
    private String closeStatus;

    /** 关闭人 */
    @ApiModelProperty ("关闭人")
    @TableField ("close_by")
    @Excel (name = "关闭人")
    private String closeBy;

    /** 关闭日期 */
    @ApiModelProperty ("关闭日期")
    @TableField ("close_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "关闭日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date closeTime;

    /** 关闭原因 */
    @ApiModelProperty ("关闭原因")
    @TableField ("close_reason")
    @Excel (name = "关闭原因")
    private String closeReason;

    /** 是否手工关闭 */
    @ApiModelProperty ("是否手工关闭")
    @TableField ("is_manually_close")
    @Excel (name = "是否手工关闭")
    private String isManuallyClose;

    /** 是否可用 */
    @ApiModelProperty ("是否可用")
    @TableField ("is_used")
    @Excel (name = "是否可用")
    private Integer isUsed;

    /** 流程实例id */
    @ApiModelProperty ("流程实例id")
    @TableField ("instance_id")
    @Excel (name = "流程实例id")
    private String instanceId;

    /** 流程状态 */
    @ApiModelProperty ("流程状态")
    @TableField ("state")
    @Excel (name = "流程状态")
    private String state;

    /** 是否发送金蝶；1：是；2：否 */
    @ApiModelProperty ("是否发送金蝶；1：是；2：否")
    @TableField ("is_send")
    @Excel (name = "是否发送金蝶；1：是；2：否")
    private Integer isSend;

    /** 备注 */
    @ApiModelProperty ("备注")
    @TableField ("remark")
    @Excel (name = "备注")
    private String remark;

    /** 创建日期 */
    @ApiModelProperty ("创建日期")
    @TableField ("create_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

    /** 修改人 */
    @ApiModelProperty ("备注")
    @TableField ("update_by")
    @Excel (name = "修改人")
    private String updateBy;

    /** 修改时间 */
    @ApiModelProperty ("修改时间")
    @TableField ("update_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateTime;


    @ApiModelProperty("业务type")
    @TableField (exist = false)
    private String businessType;

    @ApiModelProperty("流程模型id")
    @TableField (exist = false)
    private String modelId;

    @ApiModelProperty("物料明细信息")
    @TableField (exist = false)
    private List<KingPurchaseApplyMaterialEntity> materialLists;
}
